package cn.chainco.cts.idao;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cn.chainco.cts.jdo.Company;
import cn.chainco.cts.jdo.Employee;
import cn.chainco.cts.jdo.User;
import cn.chainco.cts.jdo.Verification;



public interface IVerificationDao extends GenericDao<Verification, Long>{
	
	/**
	 * 获取某家公司指定创建天数某种类型的结算单的总数
	 */
	public int getCountByCompany(Company company, Date date,int type);
	
	/**
	 * 根据凭证号查询结算单
	 */
	public Verification getVerificationBycardNum(long id,Company company, String cardNum,int type);
	
	/**
	 * 获取某家公司某种状态的结算单的数据总数
	 */
	public int getCountByCompany(Company company,int type);
	
	/**
	 * 获取某家公司某种状态的结算单币种分组金额 type=0为收入（收款） 1为 支出（付款） 2为奖励
	 */
	public List<Object> getMoneyByCompany(Company company,Employee employee,int type);
	
	/**
	 * 获取某公司汇兑损益且根据币种分组
	 */
	public List<Object> getExchangeMoneyByCompany(Company company);
	/**
	 * 获取某公司银行手续费且根据币种分组
	 */
	public List<Object> getExchangeBlankMoneyByCompany(Company company,Employee employee);
	
	/**
	 * 获取某人在某家公司的结算单的某种类别的总数
	 */
	public int getCountByStatus( Company company,User user,Employee employee,int type);
	
	/***
	 * 列表查询
	 */
	public List<Verification> getVerificationByConditon( Company company,Employee employee,User user,String keyword,int dateType,int type,int pageSize,int pageNumber );
	
	/**
	 * 获取列表查询的总数
	 */
	public int getCountVerificationByConditon( Company company,Employee employee,User user,String keyword,int dateType,int type );
		
}
